package com.megaspacevr.config;
import com.megaspacevr.interceptors.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private LoginInterceptor loginInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 设置拦截的路径
        registry.addInterceptor(loginInterceptor)
                .excludePathPatterns(// 不拦截这些路径
                        "/adminUser/login",           // 管理员登录
                        "/adminUser/testPassword",    // 测试接口
                        "/adminUser/generatePassword", // 生成密码接口
                        "/timeSlots/**",             // 时间段相关接口
                        "/anonymousUsers/**",        // 匿名用户相关接口（普通用户接口）
                        "/personalInfo/**",          // 个人信息相关接口
                        "/bookings/create",          // 创建预约接口
                        "/bookings/check-user",      // 检查用户预约状态接口
                        "/bookings/booking-number/**", // 根据预约编号查询接口
                        "/bookings/book",            // 预约接口
                        "/bookings/user-bookings",   // 用户预约记录接口
                        "/bookings/cancel/**"        // 取消预约接口
                )
                .addPathPatterns(
                        "/adminUser/**",             // 管理员用户相关（除了登录）
                        "/bookings/admin/**",        // 预约管理员接口
                        "/anonymousUsers/admin/**"   // 匿名用户管理员接口
                );
    }
}
